function addURLResource() {
  var durl = window.content.document.location.href.toString();
  var dtitle = window.content.document.title

  const MY_ID = "nepotask@adrien.guichard";
  var path = Components.classes["@mozilla.org/extensions/manager;1"].
             getService(Components.interfaces.nsIExtensionManager).
             getInstallLocation(MY_ID).getItemFile(MY_ID, "chrome/content/taskaddurl.py").
             path;

  var exec = Components.classes["@mozilla.org/file/local;1"].
             createInstance(Components.interfaces.nsILocalFile);

  exec.initWithPath(path);

  if (exec.exists()) {
    var process = Components.classes["@mozilla.org/process/util;1"].
                  createInstance(Components.interfaces.nsIProcess);
    var args = [durl, dtitle];

    if (PersistantOptions.isMicroformatEnabled()) {
      Components.utils.import("resource://gre/modules/Microformats.js");
      var mft = Microformats.get("tag", content.document);
      if (mft.length > 0) {
        args.push("nepotaskrelatedtags");
        args = args.concat(mft);
      }
//      var mfc = Microformats.get("hCard", content.document);
//      if (mfc.length > 0) {
//        args.push("nepotaskrelatedhcard");TODO study google.js, recursion problem
//        var replacer = ["adr", "bday", "email", "fn", "n", "tel"];
//        alert("AUO: "+JSON.stringify(mfc, replacer));
//      }
    }

    if (PersistantOptions.isDesktopNotifEnabled()) {
      args.push("nepotaskemitnotif");
    }

    process.init(exec);
    process.run(true, args, args.length);
  } else {
    alert("Cannot find taskaddurl.py");
  }
}
